package com.ahpu.jym.messagealert.main;

import com.ahpu.jym.messagealert.ui.ScreenUi;
import com.ahpu.jym.messagealert.ui.WorkUi;

import net.rim.device.api.applicationcontrol.ApplicationPermissions;
import net.rim.device.api.applicationcontrol.ApplicationPermissionsManager;
import net.rim.device.api.system.ApplicationManager;

/**
 * 
 * @ClassName: AppMain
 * @Description: 应用程序的主入口
 * @author sijilian sijilian.90@gmail.com
 * @date 2012-12-6 上午9:23:44
 */
public class AppMain {

	/**
	 * 
	 *<h4>Title: main 函数 一个应用程序只有一个main</h4>
	 *<p>Description: 在这个main中设置入口</p>
	 * @param args 入口参数
	 */
	public static void main(String[] args) {

		try {
			//获取应用程序的权限
			//此处检查的是模拟按键
			ApplicationPermissions apm = ApplicationPermissionsManager
					.getInstance().getApplicationPermissions();
			if (apm.getPermission(ApplicationPermissions.PERMISSION_INPUT_SIMULATION) != ApplicationPermissions.VALUE_ALLOW) {
				ApplicationPermissions ap = new ApplicationPermissions();
				int[] key = apm.getPermissionKeys();
				for (int i = 0; i < key.length; i++) {
					ap.addPermission(key[i]);
				}
				ApplicationPermissionsManager.getInstance()
						.invokePermissionsRequest(ap);
			}
		} catch (Exception e) {
			System.out.println(e.toString());
		}

		//程序正式入口
		if (args.length > 0) {
			//这个入口是服务入口
			//参数是在 Blackberry_App_Descriptor.xml->Alternate Entry Points 设置的
			if (args[0].equals("Service")) {

				//启动Application
				ApplicationInit init = new ApplicationInit();
				ApplicationManager app = ApplicationManager
						.getApplicationManager();
				//判读启动添加监听器
				if (app.inStartup()) {
					init.addSystemListener(init);
				} else {
					init.doStartupWorkLater();
				}
				init.enterEventDispatcher();

			} else if (args.length >= 4) {
				//显示弹出框
				WorkUi ui = new WorkUi(args);
				ui.start();
			}

		} else {
			//点击图标的操作
			//也就是设置界面
			ScreenUi ui = new ScreenUi();
			ui.start();

		}

	}

}
